Video displays are used in computer systems to present visual images to a user based on video data provided by a computer or other processing device. The display allows a user to effectively receive information from and to interact with application programs running in the system. Such computer systems and displays are employed in numerous business, consumer, entertainment, and industrial settings, including automated industrial control systems.
Displays are available in a variety of forms, such as color or monochrome, flat panel, liquid crystal display (LCD), electro-luminescent (EL), plasma display panels (PDP), vacuum fluorescent displays (VFD), cathode ray tube (CRT), and may be interfaced to a computer system in analog or digital fashion. The display is provided with video data frame by frame, which is scanned onto the display screen according to a scanning method which may include progressive scan, dual scan, interleave scan, or interlaced scanning. The cost of displays varies with the display resolution and quality. For example, color displays generally cost more than monochrome displays. The number of pixels, as well as the number of available colors per pixel (bits per pixels) also affects display cost. The cost of a computer display may be a large percentage of the overall computer system cost. As the application of computer system displays varies greatly, displays are accordingly provided in a variety of price ranges.
Interfacing between a computer or other processing device and a display is ordinarily accomplished using a video controller, also variously referred to as graphics adapter, graphics controller, video display adapter, display controller, and display adapter. The screen resolution on a PC is determined by the video controller, which may be plugged into one of the computer's expansion slots. In conventional systems, the display must also be able to adjust to the resolution of the video controller. Common video controllers come with their own drivers for an operating system, which are installed after the video controller is installed. The driver allows the operating system to display its video output at a certain number of resolutions and colors. The video controller may include a raster engine which rasterizes video data from a frame buffer into a format that the display can accept for rendering to a user.
Some typical display screen resolutions include 640×480, 800×600, 1024×768, 1280×1024, and 1600×1200, expressed in terms of the number of columns and rows (lines) of bits on the display screen. Higher resolutions can be used to display larger images or to show more detailed images, depending on the number of pixels per inch (ppi) and the distance of the user from the screen. In addition to display resolution, the number of colors that can be displayed varies from 2, to 8, to 16, to 256, to 65 thousand, up to 16 million. Although high-end video controllers can provide maximum colors at maximum resolution, there is typically a tradeoff involving memory and bus bandwidth, wherein the higher the resolution, the fewer the available colors. With the wide variety of available display types, and the associated cost variance, there is a need for improved video controllers which are easily adaptable to interface the display requirements of computer system applications with a plurality of disparate display types, allowing a single video controller to be used in a variety of computer systems of various cost requirements.
In addition, where a computer system application is particularly cost sensitive, a lower cost monochrome display may be selected, such as a Super Twist Nematic (STN) LCD display. In environments that require high temperature operation, it may be beneficial to use an EL display. In many such displays, it may be desirable to employ pixel dithering techniques in order to represent a variety of shades of gray or colored shades. Such grayscale dithering may improve the visual image presented to a user by selectively energizing and de-energizing certain pixels according to a dithering algorithm or scheme. This may be particularly effective when employed with display types where each pixel has only two states, e.g., an >on=state and an >off=state. Conventional techniques, however do not allow flexible application of grayscaling to multiple disparate display types in a single video controller. Thus, there is a need for improved video controllers having easily adaptable grayscaling functionality which may be employed in association with a plurality of disparate display types.
Images on a display may be overlayed with a cursor image in order to facilitate user interaction with an application program and/or an operating system. The cursor image may be superimposed on the displayed image by computer system software or by the video controller. Using the video controller to overlay a cursor image on a displayed image is difficult in association with a dual scanned display, where the upper and lower portions of the display screen are scanned in parallel. Cursor overlaying is particularly difficult where the cursor image location crosses the boundary between the upper and lower portions of the display. Software cursor overlaying techniques occupy system resources and processor time, which may be unacceptable or undesirable in some applications. Hence, there is a need for improved cursor overlaying apparatus and methodologies, particularly for use with dual scanned displays.
Blinking objects or portions thereof may be presented on a computer display, to indicate special conditions or to otherwise accentuate a video feature. Software blinking techniques have thus far been employed to effectuate blinking characters and display features on bitmapped displays. However, the use of software occupies computer system processor time and may consume additional memory and other resources. In addition, blinking of individual pixels, as opposed to character blinking, is burdensome using conventional techniques. Thus, there is a need for improved display blinking apparatus and methods which provide for pixel blinking and which reduce or minimize the overhead and possible memory usage associated with conventional bitmapped display blinking techniques.
Conventional video controllers are sometimes tested during manufacturing, to ensure proper operation prior to shipment to an end user or retailer. This testing typically involves applying a known set of video input data to the video controller and obtaining an output data set, known as a video signature. This signature is then analyzed using a signature analyzer to determine whether the video controller is operating properly. However, where the display image includes changing pixels, such as time, date, or other information which varies as a function of time, conventional signature analyzers may indicate a failed signature comparison, even where the video controller is operating properly. In addition, conventional video signature analyzers are expensive, and require extensive programming and user knowledge in order to operate. Moreover, the conventional signature analyzers may not be easily employed to test video controllers installed in a customer computer system. Thus, there is a need for improved video signature analyzers and video controllers which provide for verification of proper operation in association with changing video displays, and which provide for self-testing in a user computer system.
Raster engines typically obtain image data from a frame buffer in memory via a bus, wherein the frame buffer may be in main memory or in a separate display memory. The bus may provide access between the raster engine as well as between other devices in a computer system. Thus, there are situations in which the raster engine requires display image data from the frame buffer, and yet the raster engine cannot timely obtain such data due to contention with other devices using the common or shared bus. Thus, the raster engine may become empty, for example, during excessive bus loading conditions. In this case, the video display interfaced by the raster engine may exhibit undesirable visual effects under these conditions. For example, the display may suffer from visual defects such as jittering, shifting, flashing, and blank-outs in the displayed video image. Thus, there is a need for improved methods and apparatus for preventing or minimizing empty raster engine conditions, and the undesirable display effects associated therewith.